t = int(input())
for _ in range(t):
n = int(input())
arr = []
d = {}
for i in range(n):
l = list(map(int,input().split()))
for j in range(1,len(l)):
d[l[j]] = d.get(l[j],0) + 1
arr.append(l)
ans = 'NO'
for i in range(n):
flag = 0
a = arr[i]
l = a[1:]
for j in l:
if d[j] == 1:
flag = 1
break
if flag == 0:
ans = 'YES'
break
print(ans)
#include<bits/stdc++.h>
using namespace std;
#define int long long
int mod=1000000007;
vector<int>setbits[100100];
signed main(){
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t;cin>>t;
while(t--){
//setbits.clear();setbits.resize(100100);
int n;cin>>n;
map<int,int>mp;
for(int i=0;i<n;i++) {
int k;cin>>k;
while(k--){
int x;cin>>x;
setbits[i].push_back(x);
mp[x]++;
}
}
bool ans=0;
for(int i=0;i<n;i++) {
bool flag=0;
for(int v:setbits[i]){
if(mp[v]==1)flag=1;
}
ans=ans|(!flag);
}
if(ans)cout<<"YES";
else cout<<"NO";
cout<<endl;
for(int i=0;i<n;i++)setbits[i].clear();
}
}
1200. Minimum Absolute Difference | 1619B - Squares and Cubes |
1619A - Square String | 1629B - GCD Arrays |
1629A - Download More RAM | 1629C - Meximum Array |
1629D - Peculiar Movie Preferences | 1629E - Grid Xor |
1629F1 - Game on Sum (Easy Version) | 2148. Count Elements With Strictly Smaller and Greater Elements |
2149. Rearrange Array Elements by Sign | 2150. Find All Lonely Numbers in the Array |
2151. Maximum Good People Based on Statements | 2144. Minimum Cost of Buying Candies With Discount |
Non empty subsets | 1630A - And Matching |
1630B - Range and Partition | 1630C - Paint the Middle |
1630D - Flipping Range | 1328A - Divisibility Problem |
339A - Helpful Maths | 4A - Watermelon |
476A - Dreamoon and Stairs | 1409A - Yet Another Two Integers Problem |
977A - Wrong Subtraction | 263A - Beautiful Matrix |
180C - Letter | 151A - Soft Drinking |
1352A - Sum of Round Numbers | 281A - Word Capitalization |